package nk;

import java.util.Iterator;
import java.util.Vector;

import nk.Position;

public interface Tree {	
	
	public void cria (Object e);
	
	public void cria (Object e, Position pai);
	
	public int size ();
	
	public boolean isEmpty ();
	
	public Vector<String> getElements ();
	
	public Vector<String> getPositions ();
	
	public Position root ();
	
	public Position filho (Position p);
	
	public Position irmao (Position p);
	
	public Position pai (Position p);
	
	public Iterator<String> filhos (Position p);
	
	public boolean isExternal (Position p);
	
	public boolean isInternal (Position p);
	
	public boolean isRoot (Position p);
	
	public void swapElements (Position p1, Position p2);
	
	public Object replaceElements (Position p, Object e);
	
}